Allocation method for generating a production schedule

ABSTRACT

A novel allocation method for generating a feasible production schedule. The method, in response to a specified requirement q, comprises the steps of determining what quantity (r) of a product can be produced with a specified quantity of supply components; allocating a required quantity of supply components for filling a thus defined partial order; and filling a remainder of the requirement (q-r) at some later time.

BACKGROUND OF THE INVENTION

This invention relates to a novel allocation method for generating aproduction schedule.

INTRODUCTION TO THE INVENTION

Allocation methods for generating a production schedule are known, andare preferably used in conjunction with conventional MaterialRequirements Planning systems, for generating feasible master productionschedules. FIGS. 1 and 2 (numerals 1 through 12) are illustrative ofsuch systems. Allocation methods may also be used with detailed finitescheduling systems, for generating aggregate schedules that are feasiblewith respect to material availability and aggregate capacityconstraints. Reference on these points is made, for example, in acopending and commonly assigned U.S. Ser. No 08/108 014 incorporated byreference herein.

SUMMARY OF THE INVENTION

We further reference the novel allocation method of the presentinvention by setting forth a conceptual backdrop and associated problemrelated to production planning.

Production planning is concerned with determining production and stocklevels, in order to meet fluctuating demand requirements.

An optimal or ideal production schedule may comprise producing endproducts according to a demand schedule, and producing subassemblies(i.e., intermediate products) exactly when needed as input to a nextassembly process. However, this optimal production schedule assumesconditionalities e.g., that raw materials can be acquired as needed, andthat plant capacity can be made infinitely expandable and contractible,at no cost.

Notwithstanding a theoretical desirability for such an optimalproduction schedule, we point out that, in many real assembly systems, asupply of some raw material or machine capacity may be tightlyconstrained, with long production and/or procurement lead times.Moreover, a demand for product may fluctuate, both in total volume andin product mix. As a result, the aforementioned conditionalities may notbe met so that just-in-time production may not therefore be feasible--ittypically is not feasible-and when feasible, may result in a problem ofpoor utilization of resources.

This situation and its included problem suggest to us a need for amethod suitable for determining a feasible utilization of availableresources, given a current forecast of demand requirements.

In response and satisfaction of this need, we have now discovered anovel allocation method for generating a feasible production schedule.The method, in response to a specified requirement q, comprises thesteps of:

(1) determining what quantity (r) of a product can be produced with aspecified quantity of supply components;

(2) allocating a required quantity of supply components for filling athus defined partial order; and

(3) filling a remainder of the requirement (q-r) at some later time.

In another aspect of the present invention, we now disclose an apparatusfor generating a feasible production schedule in response to a specifiedrequirement q, the apparatus comprising:

(1) means for determining what quantity (r) of a product can be producedwith a specified quantity of supply components;

(2) means for allocating a required quantity of supply components forfilling a thus defined partial order; and

(3) means for filling a remainder of the requirement (q-r) at some latertime.

The novel method and apparatus as defined can realize severalsignificant advantages.

First of all, the novel method and apparatus can directly address andsolve an important problem related to production planning. For a complexcase where there may be, for example, (1) an insufficient inventory ofone or more supply components; and/or (2) possibly a lack of a requisitenumber of one or more supply resources needed to accomplish a productionrun; and/or (3) inventory constraints which can restrict a manufacturingprocess such that only a fraction of a desired number of various endproducts can be produced; then, for any of these fact patterns, a thusprompted decision that a manufacturer has to make with respect toallocation of the available materials and resources to provide anoptimum (feasible) number of each end product, can be realized, per thenovel method and apparatus, in accordance with an objective function.Restated, the present invention eschews heuristic or ad hoc procedures,in favor of methodology for definitely establishing, in a mathematicalsense, a necessary amount of each of the end products to be produced tomeet an objective function in the presence of inventory constraints.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is illustrated in the accompanying drawing, in which

FIG. 1 comprises a block diagram for providing constrained materialrequirements planning;

FIG. 2 comprises a schematic showing a flow of data for the FIG. 1diagram;

FIG. 3 comprises a Basic Allocation Algorithm that is preferably used inrealization of one mode of the present invention;

FIG. 4 comprises a preferred Search Procedure that may be used inconjunction with a step recited in FIG. 3; and

FIG. 5 comprises a Basic Demand Driven Allocation Algorithm inaccordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Introduction

The novel method of the present invention, as summarized as genus above,can produce a feasible production schedule that is "optimal" withrespect to production priorities specified for part number (P/N)information. The novel method, as species, comprises an extension of thegenus for producing both a feasible production schedule and a feasibleshipment schedule that is optimal with respect to shipment prioritiesspecified for the demands. The novel method, as species, also subsumesmodifications that can advantageously be used to solve specific resourceallocation problems. We now turn our attention to particulars inillustration of the genus and species.

Assumptions/Inputs/Notation

We assume that a planning horizon can be partitioned into T planningperiods. We denote the periods by t=1,2, . . . , T. These planningperiods can be shifts, days, weeks, months, quarters or even years. Itis not necessary that the planning periods be of equal length.

Inputs:

Capacity information comprising a list of the capacity resources thatwill be considered, and the amount of each capacity resource that isavailable in each period. Part number (P/N) information consisting of alist of the P/Ns that will be considered, and for each P/N, whether itis a product (can be built) or a raw material (cannot be built, hasexternal availability only).

For each P/N, supply data, comprising an amount of that P/N that becomesavailable from external sources in each time period. For each product,production information comprising:

a list of periods during which the P/N can be completed.bill-of-material (BOM) information comprising a list of entries of thefollowing form: product completion period, P/N consumed, consumptionperiod, usage quantity, bill-of-resource (BOR) information comprising alist of entries of the following form: product completion period,capacity resource consumed, consumption periods, usage quantity.

For each P/N, requirements data comprising an amount of that P/N that isrequested for external consumption in each time period.

Note that the BOM and BOR data described above incorporates the usualnotion of BOM "effectivity" dates used for representing engineeringchanges, and permits, but is not restricted to instances with multipleoccurrences of the same "consumed" part (or capacity) on a product's BOM(or BOR), as might occur when a part (capacity) is used more than onceduring the production of a product. We say that a P/N is a subassemblyif it is a product (has a BOM) and is a consumed P/N on some otherproducts BOM. We call a product an "end product" if it is not consumedon any other product's BOM. The requirements quantity does not include"internal" requirements, such as the quantity of a subassembly requiredto produce the external requirements for a final assembly.

Assumptions

Unused MATERIAL remains available for use in the next period. UnusedRESOURCES are not available in later periods.

Notation

J=set of part-numbers,

e_(j),t =external supply of j in period t (for t=1 the quantity e_(j),1includes initial stock of P/N j),

a_(i),j,t,τ =quantity of P/N i required in period t to produce one unitof P/N j in period τ.

v_(j),t =external requirements for product j in period t.

h_(j),t =priority of P/N j in period t.

R =set of resources,

g_(r),j,t,τ =quantity of resource r required in period t to produce oneunit of P/N j in period τ,

c_(r),t =quantity of resource r available in period t.

Product yield and component fallout or product re-work ratios can beincorporated into the usage quantities a_(i),j,t,τ and g_(r),j,t,τ. Werequire that the BOR coefficients g_(r),j,t,τ be non-negative, however,for consistency with many existing Manufacturing Resource Planning MRPsoftware systems, we do permit, but do not restrict our invention to,instances that include BOM coefficients a_(i),j,t,τ with negativevalues. A primary output of the basic allocation method is a feasibleproduction schedule that is optimal with respect to the prioritiesh_(j),t. We use the following notation:

    x.sub.j,t =quantity of P/N j produced in period t ε {1,2, . . . , T}.

We let X denote the matrix of production values x_(j),t. Some of theproduction of a P/N j may be used to satisfy internal requirements, forexample, requirements for a subassembly to be used in a final assembly.Some of the production of P/N j, and possibly some of the externalsupply of P/N j will be made available to satisfy the the externalrequirements for P/N j. We let W denote the matrix of externalavailability values. Specifically, w_(j),t is the quantity of P/N j thatis used in period t to satisfy external requirements for P/N j. We callthe pair (W, X) a solution to the resource allocation problem.Preferably, we say that a pair (W, X) is feasible with respect to theavailability data e_(j),t and c_(r),t if the following inequalitieshold: ##EQU1##

The first inequality is called the material balance constraint (MBC),and the second inequality is called the capacity availability constraint(CAC).

To understand the material balance constraints (MBC), note that thefirst term on the left-hand side is the quantity of P/N i that has beenused for external requirements for i through period t', and the secondterm is the total usage of P/N i in the production of other P/Ns (or, inthe case of negative usage, the net amount of P/N i consumed or producedthrough the production of other P/Ns) through period t'. On theright-hand side of the material balance constraints, the first term isthe total external availability of P/N i through period t' and thesecond term is the total production of of P/N i through period t'.

The capacity availability constraint (CAC) is somewhat simpler. Theleft-hand side gives the total quantity of resource r used in period twhile the right-hand side gives the availability of resource r in periodt.

The solution produced by our methods is feasible with respect tomaterial and capacity availability, however no lotsizing or minimumorder quantity rules are considered when generating the solution.

If there is sufficient material and capacity available to meet all therequirements through "just-in-time" production, then the externalavailability schedule will exactly correspond to the requirements. Ifthere is not sufficient capacity or material available to meet allrequirements, then the solution will allocate the available resources infavor of P/Ns with higher priority. The basic allocation algorithmconsiders P/N, period pairs (j,t) in order of priority h_(j),t. Itallocates available resources and materials to each of the requirementsv_(j),t until either the entire requirements quantity is satisfied orthe availability of some material or resource is exhausted.

Attention is now directed to FIG. 3 (numerals 13 through 21), which setsforth a preferred Basic Allocation Algorithm in accordance withequations (1) and (2), and to the following preferred details of theBasic Allocation Algorithm.

BASIC ALLOCATION ALGORITHM

Step 1: Set w_(j),t =0 and x_(j),t =0 for all j ε J and t ε {1,2, . . ., T}. Set JT={(j ε J, t ε {1,2, . . . ,T}|v_(j),t >0}. Do while JT≠.0..

Step 2: Select the pair (j, t) ε JT having the highest priority. Breakties arbitrarily. Set v=v_(j),t.

Step 3: Determine v^(*) as the minimum of: the requirement quantity v,and the maximum quantity of P/N j that can be made available forexternal requirements in period t subject to the availability ofmaterial and capacity.

Step 4: Determine the production schedule Y_(j),t for all j ε J and t ε{1,2, . . . , T} necessary to support the external availability of v^(*)units of P/N j in period t.

Step 5: Update the solution

    w.sub.j,t ←w.sub.j,t +v.sup.*,

    x.sub.j,t ←x.sub.j,t +y.sub.j,t all j ε J and t ε {1,2, . . . ,T}.

Step 6: Update material availability e_(j),t according to standardmaterials requirement planning netting logic. Update capacityavailability c_(r),t according to standard capacity requirementsplanning logic.

Step 7: Update the set JT: JT←JT-(j, t).

Step 1, Step 2, Step 5, and Step 7 of the basic algorithm require nofurther explanation. Step 6 requires simple netting logic, similar tothat used in MRP and CRP.

For each resource r ε R update c_(r),t as follows: ##EQU2##

For each P/N i ε J and each period t ε {1,2, . . . ,T} we first increasee_(i),t by the production quantity y_(i),t.

    e.sub.i,t ←e.sub.i,t +y.sub.i,t.

Then, for each i ε J and t ε {1,2, . . . , T} compute z_(i),t, theamount of i consumed in period t. ##EQU3##

Then for each i ε J and t ε {1,2, . . . T} net the usage against theupdated availability, using the latest possible supply:

Set t'=t.

While t'>0

    δ=MIN {z.sub.i,t, e.sub.i,t' },

    z.sub.i,t ←z.sub.l,t -δ,

    e.sub.i,t' ←e.sub.i,t' -δ,

    t'←t'-1.

Step 3 can be implemented in a number of different ways. For example,the problem of determining the maximum amount v^(*) of product j thatcan be produced in period t can be formulated as a linear program. Thisformulation also yields the production variables used in Step 4. Let Jbe the set of P/Ns that are involved in the production of P/N j. Thatis, jε J, and for each i ε J, we have i ε J if and only if there existsa P/N j ε J and a pair of time periods t, τ ε {1,2, . . . , T} such thata_(i),j,t,τ ≠0. Let R.OR right.R be the set of capacity resources thatare involved in the production of the P/Ns in J. That is, R={r εR|g_(r),j,t,τ ≠0 some j ε J, t, τ ε {1,2, . . . ,T}}. Note that for mostproduction planning problems, even if the sets J and R are quite large,for any choice of j ε J, the sets J and R will be relatively small.Recall that y_(j),t is the quantity of P/N j ε J produced in period t≦t,and let u_(j),t be the inventory of P/N j ε J held at the end of periodt≦t. A preferred linear program (LP) for computing v^(*) and y_(j),t isas follows: ##EQU4## This LP will in general be relatively small andfast to solve. If one adds a small "penalty" for over-building to theobjective function, then the values of y_(i),j corresponding to theoptimal solution v^(*) will provide the non-zero entries for theproduction schedule called for in Step 4. This penalty function takesthe form of small, positive coefficients on the variables u_(j),t. Inaddition, the dual variables associated with the material balance andresource availability constraints can be used to determine which of thematerials and resources play the greatest role in limiting theavailability of P/N j in period t.

In the case of "single level production," with no negative usage rates,Step 3 can be implemented as a simple ratio test. By single levelproduction we mean that there are no subassemblies; every P/N is eithera raw material or an end product. Step 3 and Step 4 can be implementedas follows:

For each i ε J and each t ε {1,2, . . . ,T} such that a_(i),j,t,t >0compute ##EQU5##

For each r ε R and each t ε {1,2, . . . ,T} such that g_(i),j,t,t >0compute ##EQU6##

Compute: ##EQU7##

If external requirements are restricted to integer values, round v^(*)down to the nearest integer. Set ##EQU8## Note that the set of P/Nslimiting the availability of P/N j in period t is given by {j εJ|μ=μ^(J) _(j),t for some t} and the set of resource limiting theavailability of P/N j is given by {r ε R|μ=μ^(R) _(r),t for some t}.

Step 3 can also be implemented as a simple line search on the interval[0,v}, or, if all quantities must be integer, as a search on the set ofinteger values {0,1,2, . . . ,v}. A simple binary search, which uses MRPand CRP explosion and netting to check the feasibility of candidatequantity v works reasonably well for moderately sized problems.

A "feasibility checker" called FEAS preferably evaluates whether thereis sufficient material and capacity to meet a given externalavailability level level v, and is used throughout the search. Theprogram FEAS is passed the adjusted supply and resource data, and thetarget quantity v. FEAS returns a value of "TRUE" if the quantity v isfeasible, and returns a value of "FALSE" is v is not feasible. An actualMRP and/or CRP tool could be used for this purpose, or the standard MRPand CRP explosion and netting logic can be simplified and re-implementedfor use in the search. After completing the explosion and nettingprocess, the target shipment quantity v is declared feasible if nomaterial or capacity shortages are reported, and is declared infeasibleif any P/N or resource is flagged as short. If the entire quantity v isfeasible, then Step 3 should produce v^(*) =v. This can be ensured by asingle call to the program FEAS with the target quantity set to v. Ifthe value "TRUE" is returned, no search is required.

For any linear search method, one first selects a tolerance level ε>0.For the integer case, one should choose ε=1. Note that the value v=0requires no materials and no resources, and thus is always a feasiblepoint. As described above, we assume that the search procedure isinvoked only if the quantity v is infeasible.

Attention is now directed to FIG. 4 (numerals 22 through 29) which setsforth a preferred Search Procedure, and to the following preferreddetails of the Search Procedure.

SEARCH PROCEDURE

STEP 1 (initialization): Set HIGH=v, LOW=0;

STEP 2 (convergence criteria): If HIGH--LOW≦ε then return (v^(*) =LOW).

STEP 3 (select candidate point): Choose MID ε (LOW+ε/2, HIGH-ε/2) (Forinteger case, choose MID ε {LOW+1, LOW+2, . . . , HIGH-1}).

STEP 4 (feasibility check): RESULT=FEAS(MID).

STEP 5 (update): If RESULT=TRUE then LOW←MID; if RESULT=FALSE thenHIGH←MID. Go To STEP 2.

For a binary search, the choice of MID is given by MID=(HIGH+LOW)/2(rounded in the integer case). Other methods of selecting the candidatepoint can also be used.

Feasibility checking can be done through use of actual MRP and CRPtools, or though through MRP and CRP emulation. An exampleimplementation (without lot-sizing) of MRP and CRP emulation will bedescribed soon, but first some additional notation is required. Assumethat the P/Ns, which are alphanumeric strings, are mapped to theintegers {1,2, . . . ,|J|} in a manner such that if there exist timeperiods t, τ0 ε{1,2, . . . ,T} such that with a_(i),j,t,τ ≠0, then i>j.Let f_(j),t denote the internal (or dependent) demand for P/N j ε J inperiod t ε {1,2, . . . T}. These quantities are generated throughout theMRP process. As mentioned in the description of the input data, for eachP/N j there is a list of periods T_(j) in which P/N j can be produced.The following procedure also determines the production variables y_(j),trequired in STEP 4. The variables e_(j),t and c_(r),t are temporarycopies of the supply and capacity data.

FEAS PROCEDURE

Input: v

Output: "TRUE" or "FALSE"

Step 1 (initialization): Set f_(j),t =0 for all j ε J, t ε {1,2, . . . ,T}. Set y_(j),t =0 for all j ε J, t ε {1,2, . . . , T}. Set e_(j),t allj ε J, t ε {1,2, . . . , T}. Set c_(r),t =c_(r),t all j ε J, t ε {1,2, .. . , T}. Set f_(j),t =v.

Step 2 (loop): For j=1 to |J|:

For τ=1 to T: (Netting) Set t=τ. While f_(j),τ >0 and t>0; δ←MIN{e_(j),t, f_(j),τ }, f_(j),τ ←f_(j),τ -δ, e_(j),t ←e_(j),t -δ, t←t-1.

(Exploding) If f_(j),τ >0 and τ ε T_(j) then do: Set y_(j),τ =f_(j),τ.(MRP) For every i ε J and t ε {1,2, . . . ,T} such that a_(i),j,t,τ ≠0do: if a_(i),j,t,τ >0 update internal demand f_(i),t ←f_(l),t+a_(i),j,tτ f_(j),τ, if a_(i),j,t,τ >0 update temporary supply e_(i),t←e_(i),t -a_(i),j,t,τ f_(j),τ.

(CRP) For every r ε R and t ε {1,2, . . . ,T} such that g_(i),j,t,τ >0do: update c_(r),t ←c_(r),t -g_(r),j,t,τ f_(j),τ. f_(j),τ =0.

Step 3: If there exists j ε J and t ε {1,2, . . . ,T} such thatf_(j),t >0 or there exists r ε R and t ε {1,2, . . . ,T} such thatc_(r),t <0 then return ("FALSE"); otherwise return ("TRUE").

Note that executing the same explosion and netting logic on the valuev^(*) with the real supply and capacity data e_(j),t and c_(r),t willprovide the updating required for STEP 6 of the basic allocation method.

This method can also be used to determine the list of materials andresources that play the most significant role in limiting availabilityof P/N j. If v^(*) <v, then additional material or resources arerequired to meet the original requirements. To determine exactly whichparts and resources are required to increase the availability quantity,one can execute the FEAS procedure with the test value v=v^(*) +ε. Inorder to increase the maximum availability value by ε, one must increasethe availability of every part j ε J and every resource r ε R that hase_(j),t <0 or c_(r),t <0, respectively, for this test value v^(*) +ε.

The Demand Driven Basic Allocation Method

In many manufacturing enterprises, the demand for P/Ns is not expressedsimply as total per period requirements for each product, but instead asspecific demand streams. For example, a demand stream may correspond toa specific order placed by a specific customer; it may correspond to therequirements for P/Ns that are sold through a specific distributionchannel; it may correspond to the expected sales for a particularmarketing promotion; or it may correspond to a forecast of demand forthe P/N. We require the following additional notation and problem data:

D=set of demands, p_(d) ε J, P/N for demand d ε D, v_(d) =quantity ofdemand d ε D, q_(d) ε {1,2, . . . ,T}, the due date of demand d ε D,h_(d) =priority of demand d ε D.

As in the previous section, we let X denote the matrix of productionvalues. We now let s_(d),t be the shipment for demand d ε D in period tε {1,2, . . . ,T} and let S denote the matrix of shipments valuess_(d),t. We say that the pair (X,S) is feasible if the resourceavailability constraint is satisfied, and the following shipmentmaterial balance constraint (SMBC) is satisfied. ##EQU9##

We make the following simplifying assumptions:

early shipment is not allowed,

late shipment is not allowed,

over shipment is not allowed,

partial shipment is allowed.

Later we will show how the demand driven basic allocation method can bemodified to relax the first two assumptions. Note that the first twoassumptions imply that the shipment variable s_(d),t will be equal tozero unless the shipment period t is equal to the demand due date q_(d).The third assumption implies that the amount shipped in the demandperiod, s_(d),qd is less than or equal to the demand quantity v_(d).

Recall that each demand d ε D is a 4-tuple of P/N, quantity, due-date,and priority: d=(p_(d), v_(d), q_(d), h_(d)).

The basic allocation algorithm can be modified to consider theindividual demand, and produce an optimal, feasible shipment scheduleand production schedule, as follows and with attention to FIG. 5(numerals 30 through 39).

BASIC DEMAND DRIVEN ALLOCATION ALGORITHM

Step 1: Set s_(d),t =0 for all d ε D and t ε {1,2, . . . ,T}. Setx_(j),t =0 for all j ε J and t ε {1,2, . . . , T}.

Do while D≠0.

Step 2: Select the demand d ε D having the highest priority. Break tiesarbitrarily. Set

    j=p.sub.d,

    t=q.sub.d,

    v=v.sub.d.

Step 3: Determine v^(*) as the minimum oft the demand quantity v, andthe maximum quantity of P/N j that can be completed in period t subjectto the availability of material and capacity.

Step 4: Determine the production schedule y_(j),t for all j ε J and t ε{1,2, . . . ,T} necessary to support the shipment of v^(*) units of P/Nj in period t.

Step 5: Update solution

    s.sub.d,t ←s.sub.d,t +v.sup.*

    x.sub.j,t ←x.sub.j,t +y.sub.j,t all j ε J and t ε {1,2, . . . ,T}.

Step 6: Update material availability e_(j),t according to standardmaterials requirement planning netting logic. Update capacityavailability c_(r),t according to standard capacity requirementsplanning logic.

Step 7: Update the demand set D←D-d.

Steps 1, 2, 5, and 7 require no further explanation. Steps 3, 4, and 6are executed using the same logic that has been described in detail forthe basic allocation algorithm.

Extensions to Basic Demand Driven Method

The above basic allocation model assumes that demand can only be servedin the period in which it is due. In many real manufacturing problems,demand can be backlogged, and met in a later period. Some portion of theunmet demand may be lost, but the remainder is transferred to thefollowing period. The basic algorithm can be modified to addressbacklogging by revising the demand d instead of deleting it from Dwhenever v^(*) <v.

For each demand d ε D we let γ_(d) :R→R be a function that specifies thecarry-over in to period q_(d) +1 of a given quantity u of unmet demandd. A reasonable assumption is that γ_(d) (u)≦u. In addition todetermining the amount of the demand to be carried from one period tothe next, we can specify the priority of the backlogged demand. Thereare several reasonable approaches to setting the priority of thebacklogged demand. Some will be discussed below.

For now we assume that there is a function α:R→R that is used todetermine the new priority of the backlogged demand from the priority ofthe demand.

Revised "backlogging" step for Basic Allocation Method

STEP 7': Update d as follows:

    q.sub.d =q.sub.d +1,

    v.sub.d =γ.sub.d (v.sub.d -v.sup.*),

    h.sub.d =α(h.sub.d).

If v=0 then D=D-d.

We now describe three specific allocation methods that differ only inthe way in which the original demand priorities are set, and in the wayin which priorities are updated. We assume that each demand d ε D hasassociated with it a relative value η_(d) ≧0. All of these methods usefull backlogging (γ_(d) (v)=v).

Method 1 ("due date, ship date driven"): Let H ε R be such that H>η_(d)for all d ε D. Initialize demand priority ha as follows: h_(d) =η_(d)+H(T² -q_(d) T). Update the priority of the backlog from demand d asfollows: α(h_(d))=h_(d) -H.

When allocating resources, this method gives highest preference todemands with earliest due dates, among demands with the same due date,it gives preference to the demands that can be met soonest, and amongdemands with the same due date t that can be met in the same period τ≧tit gives preference according to the value η_(d).

Method 2 ("Backlog-merge"): Let H ε R be such that H>η_(d) for all d εD. Initialize demand priority h_(d) as follows: h_(d) =η_(d)+H(T-q_(d)). Update the priority of the backlog from demand d asfollows: α(h_(d))=h_(d) -H.

In this method a demand from period t that is backlogged to period τdoes not necessarily have precedence over the demands with original duedate in period τ.

Method 3 (pre-allocation): Initialize demand priority h_(d) as follows:h_(d) =η_(d) Update the priority of the backlog from demand d asfollows: α(h_(d))=h_(d).

In this method, the due date of a demand plays no role in determiningwhen the demand is considered. Only the demand value η_(d) isconsidered. The priority of a demand does not increase or decrease as itbecomes backlogged.

Equitable Allocation Methods

Each of the above described allocation methods, including the basicmethod, considers a single demand at a time, according to some priorityfunction. If two demands require a common resource, and that resource isnot available in sufficient quantity to meet both demands, then thedemand that is considered first will consume as much of the resource asit can use, and the demand that is considered second will be allowed touse only the remaining quantity. This can lead to shipment schedulesthat meet one demand in full, (or, in the backlogging case, on time) andmeet another equal priority demand only in part (or, in the backloggingcase, late). Such solutions are not attractive to most productionplanners, because they give the impression of being unfair or arbitraryin the allocation of resources.

Any of the above methods can be modified to perform a more equitableallocation by simply dividing each initial demand into N>1 separatedemands and adjusting the relative priorities or values on the newdemands. The number N is selected based on the desired level ofequitability.

Equitable Allocation Procedure Let D={d₁, d₂, . . . , d_(n) }, and letthe integer N be given. Select M ε R such that M>Nn. Split each demandd₁ into N demands d_(i),1, d_(i),1, . . . , d_(i),N with p_(d).sbsb.i,k=p_(d).sbsb.i, q_(d).sbsb.i,k =q_(d).sbsb.i -, h_(d).sbsb.i,k=Mh_(d).sbsb.i +n(N-k)+(n-i).

If shipments are allowed to be fractional, then evenly divide the demandquantities:

    v.sub.d.sbsb.i,k =v.sub.d.sbsb.i /N

Otherwise, compute integer quantities v_(d).sbsb.i,k as follows:##EQU10##

Apply the demand driven basic allocation algorithm to the demand setD={d_(i),k |d_(i) ε D, k=1,2, . . . , N}.

Note that due to the choice of M if d_(i), d_(j) ε D and h_(d).sbsb.i<h_(d).sbsb.j then for every k, 1 ε {1,2. . . , N} we haveh_(d).sbsb.i,k <h_(d).sbsb.j,1. Also, if h_(d).sbsb.i =h_(d).sbsb.j and1≦k<1≦N then h_(d).sbsb.i,k >h_(d).sbsb.j,l. This means that applyingthe basic algorithm to the set D and then summing the shipment variabless_(d).sbsb.i,k,_(t) over k to obtain s_(d).sbsb.i,_(t) will result in afeasible solution that allocates equitably among the original demandswith highest priority, then nets and allocates equitably among theoriginal demands with second highest priority, and so on, until theremaining material and capacity is allocated equitably among the demandsof the lowest priority class. Any of the backlogging methods can beapplied to the split demand set D to obtain an algorithm that bothallocates equitably and backlogs demand.

Attention is now returned to FIG. 5, which provides illustration forrealization of the novel method by way of machine or computerimplementation. In particular, FIG. 5 shows a conventional computer 40for realizing the Basic Demand Driven Allocation Algorithm. The computer40 comprises a conventional input device 41 for inputting datacomprising requirement, part number supply, resource availability andbill of material resource. Aforementioned boxes 30-39 comprise stepspreferably physically implemented in a computer memory means, whichmemory means accepts data from the input device 41 for ultimate displayin a conventional display means 42.

We claim:
 1. An allocation method for utilization within a computer forgenerating a feasible production schedule in response to a specifiedrequirement q, the method comprising the computer implemented stepsof:(1) determining what quantity (r) of a product can be produced with aspecified quantity of supply components; (2) allocating a requiredquantity of supply components for filling a thus defined partial order;and (3) filling a remainder of the requirement (q-r) at some later time;wherein the steps (1) and (2) and (3) are quantitatively determined bysimultaneously solving within the computer a material balance constraint(MBC) inequality and a capacity availability constraint (CAC)inequality, wherein(i) the MBC comprises a step of comparinga) aquantity of product for external requirement (over an arbitrary timeperiod) plus a total usage of parts in a production of other parts (overthe same arbitrary time period), with b) a total external availabilityof parts (over the arbitrary period) plus a total production of partslover the arbitrary period); and (ii) the CAC comprises a step ofcomparinga) a total quantity of resource (used in the arbitrary timeperiod) with b) an availability of resource (in the arbitrary timeperiod);so that if there is not sufficient capacity or materialavailable to meet every requirement, the solution allocates availableresources in favor of requirements with high priority.
 2. A methodaccording to claim 1, comprising the step of quantitatively defining theMBC inequality and the CAC inequality so that the following inequalitiesobtain: ##EQU11## where, w_(i),t is a decision variable denoting thetotal quantity of part number P/N i made available to meet requirementin period t;a_(i),j,t,τ is a data element denoting a quantity of P/N irequired in a period t to produce one unit of P/N j in period τ; x_(j),τis a decision variable denoting quantity of P/N j produced in period t ε{1,2, . . . T}; e_(i),t is a data element denoting an external supply ofj in period t; x_(i),t is a decision variable denoting a quantity of P/Nj produced in period t ε {1,2, . . . T}; g_(r),j,t,τ is a data elementdenoting the quantity of resource r required in period t to produce oneunit of P/N j in period τ; c_(r),t is a data element denoting thequantity of resource r available in period t.
 3. A method according toclaim 2, comprising a step of simultaneously solving the MBC and CACinequalities by:(1) setting w_(j),t =0 and x_(j),t =0 for all j ε J andt ε {1,2, . . . , T}; JT={(j ε J, t ε {1,2, . . . , T})|v_(j),t >0}; anddoing while JT≠.0.; (2) selecting a pair (j, t) ε JT having a highestpriority and setting v=v_(j),t ; (3) determining v^(*) as a minimum of:a requirement quantity v, and a maximum quantity of P/N j that can bemade available for external requirements in period t subject to theavailability of material and capacity; (4) determining a productionschedule y_(j),t for all j ε J and t ε {1,2, . . . , T} necessary tosupport the external availability of v^(*) units of P/N j in period t;(5) updating a solution w_(j),t ←w_(j),t +v^(*), x_(j),t ←x_(j),t+y_(j),t all j ε J and t ε {1,2, . . . , T}; (6) updating materialavailability e_(j),t according to standard materials requirementplanning netting logic; and capacity availability c_(r),t according tostandard capacity requirements planning logic; and (7) updating a setJT: JT←JT-(j, t).
 4. A method according to claim 3, wherein step (3)comprises determining a maximum amount of product by solving a linearprogram.
 5. A method according to claim 3, wherein step (3) comprisesdetermining a maximum amount of product by computing a ratio test.
 6. Amethod according to claim 3, comprising determining a maximum of productby implementing step (3) as a line search.
 7. A method according toclaim 1, comprising the step of quantitatively determining the recitedlimitations by simultaneously solving a material balance constraint(MBC) inequality and a capacity availability constraint (CAC)inequality, wherein(i) the MBC comprises a step of comparinga) a totalpart shipment (over an arbitrary time period) plus a total usage ofparts in a production of other parts (over the same arbitrary timeperiod), and (b) a total external availability of parts (over thearbitrary period) plus a total production of parts (over the arbitraryperiod); and (ii) the CAC comprises a step of comparinga) a totalquantity of resource (used in the arbitrary time period) with b) anavailability of resource (in the arbitrary time period);so that if thereis not sufficient capacity of material available to meet every demand,the solution allocates available resources in favor of demands with highpriority.
 8. A method according to claim 7, comprising the step ofquantitatively defining the MBC inequality and the CAC inequality sothat the following inequalities obtain: ##EQU12## where, s_(d),t is adecision variable denoting a shipment for demand d ε D in period t ε{1,2, . . . T};a_(i),j,t,τ is a quantity of part number P/N i requiredin a period t to produce one unit of P/N j in period τ; x_(j),τ is adecision variable denoting a quantity of P/N j produced in period τ ε{1,2, . . . T}; e_(i),t is an external supply of j in period t; x_(i),tis a decision variable denoting a quantity of P/N i produced in period tε {1,2, . . . T}; g_(r),j,t,τ is a quantity of resource r required inperiod t to produce one unit of P/N j in period τ; c_(r),t is a quantityof resource r available in period t.
 9. A method according to claim 8,comprising the steps of simultaneously solving the MBC and CACinequalities by the steps of:(1) setting S_(d),t for all d ε D and t ε{1,2, . . . T} and setting x_(j),t =0 for all j ε J and t ε {1,2, . . .T}; (2) selecting a demand d ε D having a highest priority; (3)determining v^(*) as a minimum of: the demand quantity v, and themaximum quantity of P/N p that can be completed in period t subject tothe availability of material and capacity; (4) determining a productionschedule y_(j),t for all j ε J and t ε {1,2, . . . T} necessary tosupport the shipment of v units of P/N p in period t; (5) updating asolution

    S.sub.d,t ←S.sub.d,t +v.sup.*

    X.sub.j,t ←X.sub.j,t +y.sub.j,t all j ε J and t ε {1,2, . . . T};

(6) updating material availability e_(j),t according to standardmaterials requirement planning netting logic; updating capacityavailability c_(r),t according to standard capacity requirementsplanning logic; and (7) updating a demand set D←D-d.
 10. A methodaccording to claim 1, comprising modifying and revising demandspecification set D for addressing backlogging and comprising the stepsof:(1) determining the remaining demand quantity through use of abacklogging function; and (2) updating the priority of the demand.
 11. Amethod according to claim 1, comprising a step of performing a moreequitable allocation by dividing initial demands and adjusting relativepriorities.
 12. A method according to claim 11, comprising a step ofdefining a split demand set for obtaining an algorithm that bothallocates equitably and backlogs demand.